Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Random {rand(1,4)} berechnet falsche Werte bei "if-Bedingungen"

  • ThisIsNoNickName
  • ThisIsNoNickName's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago - 8 years 11 months ago #120175 by ThisIsNoNickName
Hi Leute,

ich hatte bei meiner Diplomarbeitsstudie schon einige Probleme, die ich jedoch alle irgendwann mit LimeSurvey und dem Lesen von Forumsbeiträgen lösen konnte. Nur dieses hier entzieht sich meinem Zugriff - ich kann es logisch einfach nicht nachvollziehen:

(@Version 2.05+ build 140204, Firefox 37.0.2)

a) die Kurzversion des Problems:
Die mit der Gleichungs-Funktion (Expression Manager) erstellte Zufallszahl, mit den Grenz-Werten 1 bis 4, wurde als {rand(1,4)} erstellt. Die Zahl wird (testweise) auch in der Befragung angezeigt.
Vier mit den Werten der Zufallszahl verknüpfte Videos, samt zugehöriger Fragen, werden jedoch nicht korrekt angezeigt. Die Videos sind zwar randomisiert - aber egal, welche Zahl ausgegeben wird, sie hat (scheinbar) nichts mit dem angezeigten Video oder den Fragen danach zu tun - und das, obwohl den Werten von "rand" ausdrücklich einzelne Videos bzw. Fragen zugeordnet wurden, und zwar in der Form --> "Bedingung, dass Frage xy angezeigt wird" = {rand}, mit dem Wert "Z"

Die detailliertere Schilderung:

Ich will die Teilnehmer an der Studie, nach ein paar Fragen am Anfang, die für alle gleich sind, in vier Gruppen aufteilen. Jede dieser Gruppen bekommt ein bestimmtes Video zu sehen und erhält dann (zum Video) zugehörige Fragen. Der einzelne Teilnehmer soll zufällig eines der vier Videos abgespielt bekommen (und damit in eine der vier Gruppen fallen). Welches der vier Videos abgespielt wird, soll über eine Zufallszahl bestimmt werden. Über die Gleichungs-Funktion (Expression Manager) habe ich deshalb eine Zufallszahl als {rand(1,4} generiert. Die Videos sind via html-code von einem externen Speicherort eingebettet, d.h. logisch als Fragen in den Survey implementiert. Sie sind jeweils in einer eigenen Fragegruppe und enthalten zusätzlich jeweils eine "Bedingung", die sich auf die Zufallszahl bezieht, also bspw. Video 1 wird nur angezeigt, wenn "rand" den Wert "1" erhält, Video 2 if rand = 2 usw...
Die zu den Videos zugehörigen Fragen danach sind ebenso mit Bedingungen zur Zufallszahl "rand" verknüpft, sodass sich, rein logisch betrachtet, immer die zugehörigen Fragen zu einem bestimmten Video anschließen müssen, da auch sie sich ja auf denselben Wert der Zufallszahl beziehen bzw. in ihrer Anzeige-Bedingung haben.

"Irgendwie" funktioniert das Ganze auch, und zwar dahingehend, dass tatsächlich "irgendein" Video ausgesucht wird - nur eben nict das, welches dem zugewiesenen Wert der Zufallszahl entsprechen sollte!
Das Anzeigen der Videos geschieht unabhängig vom Wert, den die Gleichung bzw. Funktion "rand" ausspuckt - dasselbe Video kann mit dem Wert "1" oder auch "3" oder den beiden anderen Werten angezeigt werden.
(@Egal ob Autoplay oder manueller Start eingestellt ist, das Problem bleibt immer dasselbe.)
Noch surriler war es am Anfang, als auch die Fragen völlig im shuffle angezeigt wurden. Das scheint sich nun aber gelegt zu haben - nach etwa 8 Versuchsdurchgängen wurden jetzt immer die zu den Videos zugehörigen Fragen angezeigt (zumindest das passt). Dennoch: Die Bedingungen zur Zufallszahl sind von mir eindeutig vergeben worden. Und sie sind auch notwendig, um dem Wert der Zufallszahl eine der vier Gruppe zuzuordnen. Andernfalls weiß ich bei der Datenanalyse ja selbst nicht, welches Video gezeigt wurde - ich habe dann irgendwelche Werte der Zufallszahl, die unabhängig irgendwelche Videos anzeigen, und das obwohl ein bestimmter Wert der Zufallszahl nur einem bestimmten Video zugeordnet ist.

Liegt hier ein Programmierfehler vor?? Wenn nein, wie kann es sein, dass LimeSurvey mir trotz anderer Instruktionen auf den Wert der Zufallszahl "sch.." und irgendwas anzeigt, dann aber doch wieder die richtigen Fragen dazu stellt?´?

Ach ja: Falls jemand auf die Idee kommt, ich solle die Logikdatei prüfen.. die Logikdatei ist unauffällig, alles ok.

Gibt´s hier jemanden, der einen Plan hat, woran das liegen könnte? Ich bin schon recht verzweifelt, weil ich in einer Woche starten sollte und einfach nicht auf den Fehler drauf komme..

Ich bin für jede Idee dankbar, die mich der Lösung (oder auch der Ursache) des Problems näher bringt. Leider bin ich alles andere als ein super Programmierer - ich bin schon froh, dass ich die Videos soweit einbetten konnte und also technisch-formale Erklärungen werde ich wohl nicht verstehen. Bitte darauf in den Antworten Rücksicht zu nehmen :-)

Vielen Dank,
Markus
Last edit: 8 years 11 months ago by ThisIsNoNickName. Reason: Rechtschreibung
The following user(s) said Thank You: MCIstudent20
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 11 months ago #120176 by holch
Wie wäre es denn, wenn du deinen Code den du verwendest hier anzeigst? So wie du das beschreibst kann ja keiner wirklich was dazu sagen.

Ich vermute mal, dass du zuerst die randomisierte Zahl generierst und speicherst und dann einfach nochmal eine randomisierte Zahl generierst, die dann nicht gespeichert wurde. Das würde erklären, warum die Videos randomisiert angezeigt werden, aber eben nicht passend zu der gespeicherten randomisierten Zahl.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
  • ThisIsNoNickName
  • ThisIsNoNickName's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago #120178 by ThisIsNoNickName
Naja der Code ist eben genau das, was ich geschrieben habe: Fragetyp ist auf "Gleichung" gestellt. Und im Editorfeld steht:

{rand(1,4)}

siehe Anhang


plus die Logik-Ausgabe dazu:


mehr ist da nicht, auch nicht in der Quellcode-Ansicht.

Bei den erweiterten Einstellungen habe ich (noch) nicht "Frage verstecken" angekreuzt, sondern ich lasse den Wert testweise eben ausgeben.

An diese Frage sind bei anderen Fragen dann ganz normal die Bedingungen geknüpft. Beziehen sich immer auf einen der vier Werte, die "rand" annehmen kann.

Es ist auch von externer Ip, und auch mit anderen Browsern dasselbe. Videos und Fragen passen zusammen, aber der Wert von rand eben nicht.
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 11 months ago #120182 by holch
Ich vermute, dass das Problem an der Equation liegt. Versuche mal den Wert in eine Textfrage zu schreiben.

Ich vermute, dass die rand Funktion dann nochmal ausgeführt wird, warum auch immer.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
  • ThisIsNoNickName
  • ThisIsNoNickName's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago #120303 by ThisIsNoNickName
Hi,

leider wird die Funktion nur bei "Gleichung" ausgeführt. Als Textfrage wird keine Zufallszahl generiert! Zumindest nicht, wenn die Funktion im Editor steht, und andere Möglichkeiten kenne ich bis dato nicht.

LG
The topic has been locked.
  • ThisIsNoNickName
  • ThisIsNoNickName's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 11 months ago #120306 by ThisIsNoNickName
@Erklärung: im Grunde genommen könnte man meinen, es wäre egal, welche Zahl die Random-Funktion ausspuckt. Da ich aber in der Datenauswertung nicht sehe, welches Video gezeigt wurde (da ja nur via html eingebettet und keine beantwortete Frage), muss ich mich eben doch auf die korrekt ausgegebene Zufallszahl verlassen, um die vier Gruppen nachträglich unterscheiden zu können.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 11 months ago #120309 by DenisChenu
@holch : please : can you move to de or du part ;)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose